Open Bug 1881088 Opened 1 year ago Updated 1 year ago

ThreadSanitizer: data race [@ nsThreadManager::ReleaseMainThread] vs. [@ GetMainThread]

Categories

(Core :: Graphics: ImageLib, defect)

defect

Tracking

()

Tracking Status
firefox124 --- affected
firefox125 --- affected

People

(Reporter: tsmith, Unassigned)

References

(Blocks 2 open bugs)

Details

(Keywords: csectype-race)

Found with m-c 20240216-37f95f3281e9 (--enable-thread-sanitizer --enable-fuzzing)

This was found by visiting a live website with a debug build.

STR:

  • Launch browser and visit site

This issue was triggered by visiting http://byphone.co.uk/. I have not been able to reliably reproduce the issue.

WARNING: ThreadSanitizer: data race (pid=82777)
  Read of size 8 at 0x7f91ab0f9ba0 by thread T24 (mutexes: write M0, write M1):
    #0 operator! /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:339:36 (libxul.so+0x321354d) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #1 GetMainThread /builds/worker/checkouts/gecko/xpcom/threads/nsThreadManager.cpp:623:7 (libxul.so+0x321354d)
    #2 NS_GetMainThread /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:199:50 (libxul.so+0x321354d)
    #3 NS_DispatchToMainThread(already_AddRefed<nsIRunnable>&&, unsigned int) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:235:17 (libxul.so+0x321354d)
    #4 mozilla::SchedulerGroup::Dispatch(already_AddRefed<nsIRunnable>&&) /builds/worker/checkouts/gecko/xpcom/threads/SchedulerGroup.cpp:17:10 (libxul.so+0x31f1337) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #5 mozilla::layers::SharedSurfacesChild::Share(mozilla::gfx::SourceSurfaceSharedData*) /builds/worker/checkouts/gecko/gfx/layers/ipc/SharedSurfacesChild.cpp:280:5 (libxul.so+0x44c91e6) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #6 mozilla::gfx::SourceSurfaceSharedData::Init(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, int, mozilla::gfx::SurfaceFormat, bool) /builds/worker/checkouts/gecko/gfx/layers/SourceSurfaceSharedData.cpp:163:5 (libxul.so+0x4344cc4) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #7 mozilla::image::AllocateBufferForImage(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::SurfaceFormat, bool) /builds/worker/checkouts/gecko/image/imgFrame.cpp:64:17 (libxul.so+0x47e36f5) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #8 mozilla::image::imgFrame::InitForDecoder(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::SurfaceFormat, bool, mozilla::Maybe<mozilla::image::AnimationParams> const&, bool) /builds/worker/checkouts/gecko/image/imgFrame.cpp:191:17 (libxul.so+0x47e3049) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #9 mozilla::image::Decoder::AllocateFrameInternal(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::SurfaceFormat, mozilla::Maybe<mozilla::image::AnimationParams> const&, mozilla::image::RawAccessFrameRef&&) /builds/worker/checkouts/gecko/image/Decoder.cpp:397:9 (libxul.so+0x47a75ec) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #10 mozilla::image::Decoder::AllocateFrame(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::SurfaceFormat, mozilla::Maybe<mozilla::image::AnimationParams> const&) /builds/worker/checkouts/gecko/image/Decoder.cpp:300:19 (libxul.so+0x47a6fcd) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #11 mozilla::image::SurfaceSink::Configure(mozilla::image::SurfaceConfig const&) /builds/worker/checkouts/gecko/image/SurfacePipe.cpp:68:35 (libxul.so+0x47cfccd) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #12 Configure<mozilla::image::SurfaceConfig> /builds/worker/checkouts/gecko/image/SurfaceFilters.h:140:25 (libxul.so+0x4855bef) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #13 nsresult mozilla::image::DownscalingFilter<mozilla::image::ColorManagementFilter<mozilla::image::SurfaceSink>>::Configure<mozilla::image::ColorManagementConfig, mozilla::image::SurfaceConfig>(mozilla::image::DownscalingConfig const&, mozilla::image::ColorManagementConfig const&, mozilla::image::SurfaceConfig const&) /builds/worker/checkouts/gecko/image/DownscalingFilter.h:74:25 (libxul.so+0x4855bef)
    #14 mozilla::Maybe<mozilla::image::SurfacePipe> mozilla::image::SurfacePipeFactory::MakePipe<mozilla::image::DownscalingConfig, mozilla::image::ColorManagementConfig, mozilla::image::SurfaceConfig>(mozilla::image::DownscalingConfig const&, mozilla::image::ColorManagementConfig const&, mozilla::image::SurfaceConfig const&) /builds/worker/checkouts/gecko/image/SurfacePipeFactory.h:665:25 (libxul.so+0x4850672) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #15 mozilla::image::SurfacePipeFactory::CreateReorientSurfacePipe(mozilla::image::Decoder*, mozilla::gfx::IntSizeTyped<mozilla::OrientedPixel> const&, mozilla::gfx::IntSizeTyped<mozilla::OrientedPixel> const&, mozilla::gfx::SurfaceFormat, _qcms_transform*, mozilla::image::Orientation const&) /builds/worker/checkouts/gecko/image/SurfacePipeFactory.h:630:15 (libxul.so+0x48221c4) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #16 mozilla::image::nsAVIFDecoder::DoDecodeInternal(mozilla::image::SourceBufferIterator&, mozilla::image::IResumable*) /builds/worker/checkouts/gecko/image/decoders/nsAVIFDecoder.cpp:1894:12 (libxul.so+0x481e8ac) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #17 mozilla::image::nsAVIFDecoder::DoDecode(mozilla::image::SourceBufferIterator&, mozilla::image::IResumable*) /builds/worker/checkouts/gecko/image/decoders/nsAVIFDecoder.cpp:1224:25 (libxul.so+0x481bec8) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #18 mozilla::image::Decoder::Decode(mozilla::image::IResumable*) /builds/worker/checkouts/gecko/image/Decoder.cpp:177:19 (libxul.so+0x479c46b) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #19 mozilla::image::DecodedSurfaceProvider::Run() /builds/worker/checkouts/gecko/image/DecodedSurfaceProvider.cpp:125:34 (libxul.so+0x47a5587) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #20 non-virtual thunk to mozilla::image::DecodedSurfaceProvider::Run() /builds/worker/checkouts/gecko/image/DecodedSurfaceProvider.cpp (libxul.so+0x47a5bc9) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #21 mozilla::image::DecodingTask::Run() /builds/worker/checkouts/gecko/image/DecodePool.cpp:146:12 (libxul.so+0x47b47ab) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #22 mozilla::TaskController::RunPoolThread() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:368:33 (libxul.so+0x31f339e) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #23 mozilla::ThreadFuncPoolThread(void*) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:220:26 (libxul.so+0x31f2ade) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #24 _pt_root /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:201:5 (libnspr4.so+0x4ba79) (BuildId: ddf1849833e2e367f1d928e6d2b196b075e2ffdf)

  Previous write of size 8 at 0x7f91ab0f9ba0 by main thread:
    #0 assign_assuming_AddRef /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:66:13 (libxul.so+0x321e94d) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #1 operator= /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:180:5 (libxul.so+0x321e94d)
    #2 nsThreadManager::ReleaseMainThread() /builds/worker/checkouts/gecko/xpcom/threads/nsThreadManager.cpp:466:15 (libxul.so+0x321e94d)
    #3 mozilla::ShutdownXPCOM(nsIServiceManager*) /builds/worker/checkouts/gecko/xpcom/build/XPCOMInit.cpp:680:26 (libxul.so+0x3258721) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #4 NS_ShutdownXPCOM /builds/worker/checkouts/gecko/xpcom/build/XPCOMInit.cpp:568:10 (libxul.so+0x3258365) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #5 mozilla::dom::ContentProcess::CleanUp() /builds/worker/checkouts/gecko/dom/ipc/ContentProcess.cpp:189:3 (libxul.so+0x75ad943) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #6 XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:660:16 (libxul.so+0x9c8d281) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #7 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0x9c99742) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #8 content_process_main /builds/worker/checkouts/gecko/browser/app/../../ipc/contentproc/plugin-container.cpp:57:28 (firefox-bin+0x15c142) (BuildId: 43537d5fb13251c2c7af0f381188df89dc12b6bd)
    #9 main /builds/worker/checkouts/gecko/browser/app/nsBrowserApp.cpp:375:18 (firefox-bin+0x15c142)

  Location is global 'nsThreadManager::get()::sInstance' of size 120 at 0x7f91ab0f9b80 (libxul.so+0xce29ba0)

  Mutex M0 (0x7b4000059598) created at:
    #0 pthread_mutex_init /builds/worker/fetches/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1313:3 (firefox-bin+0xd4c70) (BuildId: 43537d5fb13251c2c7af0f381188df89dc12b6bd)
    #1 mozilla::detail::MutexImpl::MutexImpl() /builds/worker/checkouts/gecko/mozglue/misc/Mutex_posix.cpp:76:3 (firefox-bin+0x1c8964) (BuildId: 43537d5fb13251c2c7af0f381188df89dc12b6bd)
    #2 OffTheBooksMutex /builds/worker/workspace/obj-build/dist/include/mozilla/Mutex.h:47:12 (libxul.so+0x47a85c3) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #3 Mutex /builds/worker/workspace/obj-build/dist/include/mozilla/Mutex.h:126:39 (libxul.so+0x47a85c3)
    #4 DecodedSurfaceProvider /builds/worker/checkouts/gecko/image/DecodedSurfaceProvider.cpp:26:7 (libxul.so+0x47a85c3)
    #5 MakeNotNull<RefPtr<mozilla::image::DecodedSurfaceProvider>, mozilla::NotNull<mozilla::image::RasterImage *> &, mozilla::image::SurfaceKey &, mozilla::NotNull<RefPtr<mozilla::image::Decoder> > > /builds/worker/workspace/obj-build/dist/include/mozilla/NotNull.h:402:25 (libxul.so+0x47a85c3)
    #6 mozilla::image::DecoderFactory::CreateDecoder(mozilla::image::DecoderType, mozilla::NotNull<mozilla::image::RasterImage*>, mozilla::NotNull<mozilla::image::SourceBuffer*>, mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::image::DecoderFlags, mozilla::image::SurfaceFlags, mozilla::image::IDecodingTask**) /builds/worker/checkouts/gecko/image/DecoderFactory.cpp:203:19 (libxul.so+0x47a85c3)
    #7 mozilla::image::RasterImage::Decode(mozilla::gfx::IntSizeTyped<mozilla::OrientedPixel> const&, unsigned int, mozilla::image::PlaybackType, bool&, bool&) /builds/worker/checkouts/gecko/image/RasterImage.cpp:1215:10 (libxul.so+0x47c114a) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #8 mozilla::image::RasterImage::LookupFrame(mozilla::gfx::IntSizeTyped<mozilla::OrientedPixel> const&, unsigned int, mozilla::image::PlaybackType, bool) /builds/worker/checkouts/gecko/image/RasterImage.cpp:385:5 (libxul.so+0x47c02d0) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #9 mozilla::image::RasterImage::GetImageProvider(mozilla::WindowRenderer*, mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::SVGImageContext const&, mozilla::Maybe<mozilla::image::ImageIntRegion> const&, unsigned int, mozilla::image::WebRenderImageProvider**) /builds/worker/checkouts/gecko/image/RasterImage.cpp:641:25 (libxul.so+0x47c2039) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #10 mozilla::nsImageRenderer::BuildWebRenderDisplayItems(nsPresContext*, mozilla::wr::DisplayListBuilder&, mozilla::wr::IpcResourceUpdateQueue&, mozilla::layers::StackingContextHelper const&, mozilla::layers::RenderRootStateManager*, mozilla::nsDisplayItem*, nsRect const&, nsRect const&, nsRect const&, nsPoint const&, nsSize const&, mozilla::gfx::IntRectTyped<mozilla::CSSPixel> const&, float) /builds/worker/checkouts/gecko/layout/painting/nsImageRenderer.cpp:623:37 (libxul.so+0x85ea3a6) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #11 BuildWebRenderDisplayItemsForLayer /builds/worker/checkouts/gecko/layout/painting/nsImageRenderer.cpp:775:10 (libxul.so+0x8591fd6) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #12 nsCSSRendering::BuildWebRenderDisplayItemsForStyleImageLayerWithSC(nsCSSRendering::PaintBGParams const&, mozilla::wr::DisplayListBuilder&, mozilla::wr::IpcResourceUpdateQueue&, mozilla::layers::StackingContextHelper const&, mozilla::layers::RenderRootStateManager*, mozilla::nsDisplayItem*, mozilla::ComputedStyle*, nsStyleBorder const&) /builds/worker/checkouts/gecko/layout/painting/nsCSSRendering.cpp:2729:36 (libxul.so+0x8591fd6)
    #13 BuildWebRenderDisplayItemsForStyleImageLayer /builds/worker/checkouts/gecko/layout/painting/nsCSSRendering.cpp:1958:10 (libxul.so+0x85c5283) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #14 mozilla::nsDisplayBackgroundImage::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder&, mozilla::wr::IpcResourceUpdateQueue&, mozilla::layers::StackingContextHelper const&, mozilla::layers::RenderRootStateManager*, mozilla::nsDisplayListBuilder*) /builds/worker/checkouts/gecko/layout/painting/nsDisplayList.cpp:3396:7 (libxul.so+0x85c5283)
    #15 mozilla::layers::WebRenderCommandBuilder::CreateWebRenderCommands(mozilla::nsDisplayItem*, mozilla::wr::DisplayListBuilder&, mozilla::wr::IpcResourceUpdateQueue&, mozilla::layers::StackingContextHelper const&, mozilla::nsDisplayListBuilder*) /builds/worker/checkouts/gecko/gfx/layers/wr/WebRenderCommandBuilder.cpp:1864:41 (libxul.so+0x4547638) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #16 mozilla::layers::WebRenderCommandBuilder::CreateWebRenderCommandsFromDisplayList(mozilla::nsDisplayList*, mozilla::nsDisplayItem*, mozilla::nsDisplayListBuilder*, mozilla::layers::StackingContextHelper const&, mozilla::wr::DisplayListBuilder&, mozilla::wr::IpcResourceUpdateQueue&, bool) /builds/worker/checkouts/gecko/gfx/layers/wr/WebRenderCommandBuilder.cpp:2130:7 (libxul.so+0x4546412) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #17 mozilla::nsDisplayOpacity::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder&, mozilla::wr::IpcResourceUpdateQueue&, mozilla::layers::StackingContextHelper const&, mozilla::layers::RenderRootStateManager*, mozilla::nsDisplayListBuilder*) /builds/worker/checkouts/gecko/layout/painting/nsDisplayList.cpp:4980:30 (libxul.so+0x85d0111) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #18 mozilla::layers::WebRenderCommandBuilder::CreateWebRenderCommands(mozilla::nsDisplayItem*, mozilla::wr::DisplayListBuilder&, mozilla::wr::IpcResourceUpdateQueue&, mozilla::layers::StackingContextHelper const&, mozilla::nsDisplayListBuilder*) /builds/worker/checkouts/gecko/gfx/layers/wr/WebRenderCommandBuilder.cpp:1864:41 (libxul.so+0x4547638) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #19 mozilla::layers::WebRenderCommandBuilder::CreateWebRenderCommandsFromDisplayList(mozilla::nsDisplayList*, mozilla::nsDisplayItem*, mozilla::nsDisplayListBuilder*, mozilla::layers::StackingContextHelper const&, mozilla::wr::DisplayListBuilder&, mozilla::wr::IpcResourceUpdateQueue&, bool) /builds/worker/checkouts/gecko/gfx/layers/wr/WebRenderCommandBuilder.cpp:2130:7 (libxul.so+0x4546412) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #20 mozilla::layers::WebRenderCommandBuilder::BuildWebRenderCommands(mozilla::wr::DisplayListBuilder&, mozilla::wr::IpcResourceUpdateQueue&, mozilla::nsDisplayList*, mozilla::nsDisplayListBuilder*, mozilla::layers::WebRenderScrollData&, WrFiltersHolder&&) /builds/worker/checkouts/gecko/gfx/layers/wr/WebRenderCommandBuilder.cpp:1785:5 (libxul.so+0x4544cf3) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #21 mozilla::layers::WebRenderLayerManager::EndTransactionWithoutLayer(mozilla::nsDisplayList*, mozilla::nsDisplayListBuilder*, WrFiltersHolder&&, mozilla::layers::WebRenderBackgroundData*, double) /builds/worker/checkouts/gecko/gfx/layers/wr/WebRenderLayerManager.cpp:364:30 (libxul.so+0x4555d5b) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #22 mozilla::nsDisplayList::PaintRoot(mozilla::nsDisplayListBuilder*, gfxContext*, unsigned int, mozilla::Maybe<double>) /builds/worker/checkouts/gecko/layout/painting/nsDisplayList.cpp:2287:18 (libxul.so+0x85bb1ef) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #23 nsLayoutUtils::PaintFrame(gfxContext*, nsIFrame*, nsRegion const&, unsigned int, mozilla::nsDisplayListBuilderMode, nsLayoutUtils::PaintFrameFlags) /builds/worker/checkouts/gecko/layout/base/nsLayoutUtils.cpp:3315:9 (libxul.so+0x81eddcb) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #24 mozilla::PresShell::PaintInternal(nsView*, mozilla::PaintInternalFlags) /builds/worker/checkouts/gecko/layout/base/PresShell.cpp:6481:5 (libxul.so+0x815f724) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #25 mozilla::PresShell::PaintAndRequestComposite(nsView*, mozilla::PaintFlags) /builds/worker/checkouts/gecko/layout/base/PresShell.cpp:6353:3 (libxul.so+0x815ef0d) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #26 nsViewManager::ProcessPendingUpdatesPaint(nsIWidget*) /builds/worker/checkouts/gecko/view/nsViewManager.cpp:408:18 (libxul.so+0x7cc59bc) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #27 nsViewManager::ProcessPendingUpdatesForView(nsView*, bool) /builds/worker/checkouts/gecko/view/nsViewManager.cpp:343:22 (libxul.so+0x7cc538a) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #28 nsViewManager::ProcessPendingUpdates() /builds/worker/checkouts/gecko/view/nsViewManager.cpp:916:5 (libxul.so+0x7cc701c) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #29 nsRefreshDriver::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp, nsRefreshDriver::IsExtraTick) /builds/worker/checkouts/gecko/layout/base/nsRefreshDriver.cpp:2819:11 (libxul.so+0x810e5ad) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #30 TickDriver /builds/worker/checkouts/gecko/layout/base/nsRefreshDriver.cpp:367:13 (libxul.so+0x81197a2) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #31 mozilla::RefreshDriverTimer::TickRefreshDrivers(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver>>&) /builds/worker/checkouts/gecko/layout/base/nsRefreshDriver.cpp:345:7 (libxul.so+0x81197a2)
    #32 mozilla::RefreshDriverTimer::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp) /builds/worker/checkouts/gecko/layout/base/nsRefreshDriver.cpp:361:5 (libxul.so+0x811959f) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #33 mozilla::VsyncRefreshDriverTimer::RunRefreshDrivers(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp) /builds/worker/checkouts/gecko/layout/base/nsRefreshDriver.cpp:951:5 (libxul.so+0x81193ab) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #34 mozilla::VsyncRefreshDriverTimer::TickRefreshDriver(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp) /builds/worker/checkouts/gecko/layout/base/nsRefreshDriver.cpp:861:5 (libxul.so+0x81188c0) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #35 mozilla::VsyncRefreshDriverTimer::NotifyVsyncOnMainThread(mozilla::VsyncEvent const&) /builds/worker/checkouts/gecko/layout/base/nsRefreshDriver.cpp:758:5 (libxul.so+0x8117fb7) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #36 mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsyncTimerOnMainThread() /builds/worker/checkouts/gecko/layout/base/nsRefreshDriver.cpp:592:14 (libxul.so+0x8117927) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #37 mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsync(mozilla::VsyncEvent const&) /builds/worker/checkouts/gecko/layout/base/nsRefreshDriver.cpp:549:9 (libxul.so+0x81176a9) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #38 mozilla::dom::VsyncMainChild::RecvNotify(mozilla::VsyncEvent const&, float const&) /builds/worker/checkouts/gecko/dom/ipc/VsyncMainChild.cpp:66:15 (libxul.so+0x754b449) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #39 mozilla::dom::PVsyncChild::OnMessageReceived(IPC::Message const&) /builds/worker/workspace/obj-build/ipc/ipdl/PVsyncChild.cpp:237:78 (libxul.so+0x776aa11) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #40 mozilla::ipc::PBackgroundChild::OnMessageReceived(IPC::Message const&) /builds/worker/workspace/obj-build/ipc/ipdl/PBackgroundChild.cpp:5555:32 (libxul.so+0x3d9caa5) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #41 mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&) /builds/worker/checkouts/gecko/ipc/glue/MessageChannel.cpp:1813:25 (libxul.so+0x3d52aaf) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #42 mozilla::ipc::MessageChannel::DispatchMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::UniquePtr<IPC::Message, mozilla::DefaultDelete<IPC::Message>>) /builds/worker/checkouts/gecko/ipc/glue/MessageChannel.cpp:1732:9 (libxul.so+0x3d51198) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #43 mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::ipc::MessageChannel::MessageTask&) /builds/worker/checkouts/gecko/ipc/glue/MessageChannel.cpp:1525:3 (libxul.so+0x3d517a3) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #44 mozilla::ipc::MessageChannel::MessageTask::Run() /builds/worker/checkouts/gecko/ipc/glue/MessageChannel.cpp:1623:14 (libxul.so+0x3d520e7) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #45 mozilla::RunnableTask::Run() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:578:16 (libxul.so+0x3201c52) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #46 mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:905:26 (libxul.so+0x31f6443) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #47 mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:728:15 (libxul.so+0x31f4c76) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #48 mozilla::TaskController::ProcessPendingMTTask(bool) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:514:36 (libxul.so+0x31f4faf) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #49 operator() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:232:37 (libxul.so+0x3204ef4) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #50 mozilla::detail::RunnableFunction<mozilla::TaskController::TaskController()::$_0>::Run() /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.h:548:5 (libxul.so+0x3204ef4)
    #51 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1199:16 (libxul.so+0x3219cb8) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #52 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:480:10 (libxul.so+0x3220484) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #53 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:85:21 (libxul.so+0x3d56aee) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #54 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:268:30 (libxul.so+0x3d575bb) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #55 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:370:10 (libxul.so+0x3ccbf38) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #56 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:363:3 (libxul.so+0x3ccbf38)
    #57 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:345:3 (libxul.so+0x3ccbf38)
    #58 nsBaseAppShell::Run() /builds/worker/checkouts/gecko/widget/nsBaseAppShell.cpp:148:27 (libxul.so+0x7d3a393) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #59 nsAppShell::Run() /builds/worker/checkouts/gecko/widget/gtk/nsAppShell.cpp:470:33 (libxul.so+0x7e2a5dc) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #60 XRE_RunAppShell() /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:721:20 (libxul.so+0x9c8d60f) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #61 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:235:9 (libxul.so+0x3d5756a) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #62 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:370:10 (libxul.so+0x3ccbf38) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #63 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:363:3 (libxul.so+0x3ccbf38)
    #64 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:345:3 (libxul.so+0x3ccbf38)
    #65 XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:656:34 (libxul.so+0x9c8d270) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #66 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0x9c99742) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #67 content_process_main /builds/worker/checkouts/gecko/browser/app/../../ipc/contentproc/plugin-container.cpp:57:28 (firefox-bin+0x15c142) (BuildId: 43537d5fb13251c2c7af0f381188df89dc12b6bd)
    #68 main /builds/worker/checkouts/gecko/browser/app/nsBrowserApp.cpp:375:18 (firefox-bin+0x15c142)

  Mutex M1 (0x7b34000368a8) created at:
    #0 pthread_mutex_init /builds/worker/fetches/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1313:3 (firefox-bin+0xd4c70) (BuildId: 43537d5fb13251c2c7af0f381188df89dc12b6bd)
    #1 mozilla::detail::MutexImpl::MutexImpl() /builds/worker/checkouts/gecko/mozglue/misc/Mutex_posix.cpp:76:3 (firefox-bin+0x1c8964) (BuildId: 43537d5fb13251c2c7af0f381188df89dc12b6bd)
    #2 OffTheBooksMutex /builds/worker/workspace/obj-build/dist/include/mozilla/Mutex.h:47:12 (libxul.so+0x47e2c5c) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #3 Mutex /builds/worker/workspace/obj-build/dist/include/mozilla/Mutex.h:126:39 (libxul.so+0x47e2c5c)
    #4 Monitor /builds/worker/workspace/obj-build/dist/include/mozilla/Monitor.h:27:9 (libxul.so+0x47e2c5c)
    #5 mozilla::image::imgFrame::imgFrame() /builds/worker/checkouts/gecko/image/imgFrame.cpp:126:7 (libxul.so+0x47e2c5c)
    #6 MakeNotNull<RefPtr<mozilla::image::imgFrame> > /builds/worker/workspace/obj-build/dist/include/mozilla/NotNull.h:402:25 (libxul.so+0x47a75ad) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #7 mozilla::image::Decoder::AllocateFrameInternal(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::SurfaceFormat, mozilla::Maybe<mozilla::image::AnimationParams> const&, mozilla::image::RawAccessFrameRef&&) /builds/worker/checkouts/gecko/image/Decoder.cpp:396:18 (libxul.so+0x47a75ad)
    #8 mozilla::image::Decoder::AllocateFrame(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::SurfaceFormat, mozilla::Maybe<mozilla::image::AnimationParams> const&) /builds/worker/checkouts/gecko/image/Decoder.cpp:300:19 (libxul.so+0x47a6fcd) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #9 mozilla::image::SurfaceSink::Configure(mozilla::image::SurfaceConfig const&) /builds/worker/checkouts/gecko/image/SurfacePipe.cpp:68:35 (libxul.so+0x47cfccd) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #10 Configure<mozilla::image::SurfaceConfig> /builds/worker/checkouts/gecko/image/SurfaceFilters.h:140:25 (libxul.so+0x4855bef) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #11 nsresult mozilla::image::DownscalingFilter<mozilla::image::ColorManagementFilter<mozilla::image::SurfaceSink>>::Configure<mozilla::image::ColorManagementConfig, mozilla::image::SurfaceConfig>(mozilla::image::DownscalingConfig const&, mozilla::image::ColorManagementConfig const&, mozilla::image::SurfaceConfig const&) /builds/worker/checkouts/gecko/image/DownscalingFilter.h:74:25 (libxul.so+0x4855bef)
    #12 mozilla::Maybe<mozilla::image::SurfacePipe> mozilla::image::SurfacePipeFactory::MakePipe<mozilla::image::DownscalingConfig, mozilla::image::ColorManagementConfig, mozilla::image::SurfaceConfig>(mozilla::image::DownscalingConfig const&, mozilla::image::ColorManagementConfig const&, mozilla::image::SurfaceConfig const&) /builds/worker/checkouts/gecko/image/SurfacePipeFactory.h:665:25 (libxul.so+0x4850672) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #13 mozilla::image::SurfacePipeFactory::CreateReorientSurfacePipe(mozilla::image::Decoder*, mozilla::gfx::IntSizeTyped<mozilla::OrientedPixel> const&, mozilla::gfx::IntSizeTyped<mozilla::OrientedPixel> const&, mozilla::gfx::SurfaceFormat, _qcms_transform*, mozilla::image::Orientation const&) /builds/worker/checkouts/gecko/image/SurfacePipeFactory.h:630:15 (libxul.so+0x48221c4) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #14 mozilla::image::nsAVIFDecoder::DoDecodeInternal(mozilla::image::SourceBufferIterator&, mozilla::image::IResumable*) /builds/worker/checkouts/gecko/image/decoders/nsAVIFDecoder.cpp:1894:12 (libxul.so+0x481e8ac) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #15 mozilla::image::nsAVIFDecoder::DoDecode(mozilla::image::SourceBufferIterator&, mozilla::image::IResumable*) /builds/worker/checkouts/gecko/image/decoders/nsAVIFDecoder.cpp:1224:25 (libxul.so+0x481bec8) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #16 mozilla::image::Decoder::Decode(mozilla::image::IResumable*) /builds/worker/checkouts/gecko/image/Decoder.cpp:177:19 (libxul.so+0x479c46b) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #17 mozilla::image::DecodedSurfaceProvider::Run() /builds/worker/checkouts/gecko/image/DecodedSurfaceProvider.cpp:125:34 (libxul.so+0x47a5587) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #18 non-virtual thunk to mozilla::image::DecodedSurfaceProvider::Run() /builds/worker/checkouts/gecko/image/DecodedSurfaceProvider.cpp (libxul.so+0x47a5bc9) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #19 mozilla::image::DecodingTask::Run() /builds/worker/checkouts/gecko/image/DecodePool.cpp:146:12 (libxul.so+0x47b47ab) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #20 mozilla::TaskController::RunPoolThread() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:368:33 (libxul.so+0x31f339e) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #21 mozilla::ThreadFuncPoolThread(void*) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:220:26 (libxul.so+0x31f2ade) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #22 _pt_root /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:201:5 (libnspr4.so+0x4ba79) (BuildId: ddf1849833e2e367f1d928e6d2b196b075e2ffdf)

  Thread T24 'TaskCon~ller #5' (tid=82806, running) created by main thread at:
    #0 pthread_create /builds/worker/fetches/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1020:3 (firefox-bin+0xd328b) (BuildId: 43537d5fb13251c2c7af0f381188df89dc12b6bd)
    #1 _PR_CreateThread /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:458:14 (libnspr4.so+0x42cee) (BuildId: ddf1849833e2e367f1d928e6d2b196b075e2ffdf)
    #2 PR_CreateThread /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:533:12 (libnspr4.so+0x37f84) (BuildId: ddf1849833e2e367f1d928e6d2b196b075e2ffdf)
    #3 mozilla::TaskController::InitializeThreadPool() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:269:10 (libxul.so+0x31f3de9) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #4 mozilla::TaskController::AddTask(already_AddRefed<mozilla::Task>&&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:434:7 (libxul.so+0x31f4805) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #5 mozilla::dom::ScriptLoader::AttemptOffThreadScriptCompile(JS::loader::ScriptLoadRequest*, bool*) /builds/worker/checkouts/gecko/dom/script/ScriptLoader.cpp:1795:26 (libxul.so+0x7add19e) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #6 mozilla::dom::ScriptLoader::PrepareLoadedRequest(JS::loader::ScriptLoadRequest*, nsIIncrementalStreamLoader*, nsresult) /builds/worker/checkouts/gecko/dom/script/ScriptLoader.cpp:3879:10 (libxul.so+0x7ae4e2d) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #7 mozilla::dom::ScriptLoader::OnStreamComplete(nsIIncrementalStreamLoader*, JS::loader::ScriptLoadRequest*, nsresult, nsresult, mozilla::dom::SRICheckDataVerifier*) /builds/worker/checkouts/gecko/dom/script/ScriptLoader.cpp:3362:12 (libxul.so+0x7ad3543) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #8 mozilla::dom::ScriptLoadHandler::OnStreamComplete(nsIIncrementalStreamLoader*, nsISupports*, nsresult, unsigned int, unsigned char const*) /builds/worker/checkouts/gecko/dom/script/ScriptLoadHandler.cpp:459:23 (libxul.so+0x7ad2cfb) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #9 nsIncrementalStreamLoader::OnStopRequest(nsIRequest*, nsresult) /builds/worker/checkouts/gecko/netwerk/base/nsIncrementalStreamLoader.cpp:82:20 (libxul.so+0x3408891) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #10 OnStopRequest /builds/worker/checkouts/gecko/netwerk/protocol/http/nsCORSListenerProxy.cpp:683:27 (libxul.so+0x3990b88) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #11 non-virtual thunk to nsCORSListenerProxy::OnStopRequest(nsIRequest*, nsresult) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsCORSListenerProxy.cpp (libxul.so+0x3990b88)
    #12 mozilla::net::InterceptFailedOnStop::OnStopRequest(nsIRequest*, nsresult) /builds/worker/checkouts/gecko/netwerk/protocol/http/HttpBaseChannel.cpp:1426:19 (libxul.so+0x3943fb1) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #13 mozilla::net::nsHTTPCompressConv::OnStopRequest(nsIRequest*, nsresult) /builds/worker/checkouts/gecko/netwerk/streamconv/converters/nsHTTPCompressConv.cpp:184:20 (libxul.so+0x3777398) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #14 mozilla::net::HttpChannelChild::DoOnStopRequest(nsIRequest*, nsresult) /builds/worker/checkouts/gecko/netwerk/protocol/http/HttpChannelChild.cpp:1279:15 (libxul.so+0x39071c9) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #15 mozilla::net::HttpChannelChild::OnStopRequest(nsresult const&, mozilla::net::ResourceTimingStructArgs const&, mozilla::net::nsHttpHeaderArray const&) /builds/worker/checkouts/gecko/netwerk/protocol/http/HttpChannelChild.cpp:1098:5 (libxul.so+0x3906a56) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #16 operator() /builds/worker/checkouts/gecko/netwerk/protocol/http/HttpChannelChild.cpp:925:15 (libxul.so+0x39552de) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #17 std::_Function_handler<void (), mozilla::net::HttpChannelChild::ProcessOnStopRequest(nsresult const&, mozilla::net::ResourceTimingStructArgs const&, mozilla::net::nsHttpHeaderArray const&, nsTArray<mozilla::net::ConsoleReportCollected>&&, bool, mozilla::TimeStamp const&)::$_2>::_M_invoke(std::_Any_data const&) /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:297:2 (libxul.so+0x39552de)
    #18 operator() /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:687:14 (libxul.so+0x382bef3) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #19 mozilla::net::ChannelFunctionEvent::Run() /builds/worker/workspace/obj-build/dist/include/mozilla/net/ChannelEventQueue.h:55:25 (libxul.so+0x382bef3)
    #20 mozilla::net::ChannelEventQueue::FlushQueue() /builds/worker/checkouts/gecko/netwerk/ipc/ChannelEventQueue.cpp:94:12 (libxul.so+0x3b08b3d) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #21 MaybeFlushQueue /builds/worker/checkouts/gecko/netwerk/ipc/ChannelEventQueue.h:354:5 (libxul.so+0x3b2d2bc) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #22 mozilla::net::ChannelEventQueue::CompleteResume() /builds/worker/checkouts/gecko/netwerk/ipc/ChannelEventQueue.h:333:5 (libxul.so+0x3b2d2bc)
    #23 mozilla::net::ChannelEventQueue::ResumeInternal()::CompleteResumeRunnable::Run() /builds/worker/checkouts/gecko/netwerk/ipc/ChannelEventQueue.cpp:152:17 (libxul.so+0x3b2d0af) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #24 mozilla::RunnableTask::Run() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:578:16 (libxul.so+0x3201c52) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #25 mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:905:26 (libxul.so+0x31f6443) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #26 mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:728:15 (libxul.so+0x31f4c76) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #27 mozilla::TaskController::ProcessPendingMTTask(bool) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:514:36 (libxul.so+0x31f4faf) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #28 operator() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:235:37 (libxul.so+0x3204f47) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #29 mozilla::detail::RunnableFunction<mozilla::TaskController::TaskController()::$_1>::Run() /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.h:548:5 (libxul.so+0x3204f47)
    #30 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1199:16 (libxul.so+0x3219cb8) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #31 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:480:10 (libxul.so+0x3220484) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #32 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:107:5 (libxul.so+0x3d56b66) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #33 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:268:30 (libxul.so+0x3d575bb) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #34 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:370:10 (libxul.so+0x3ccbf38) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #35 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:363:3 (libxul.so+0x3ccbf38)
    #36 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:345:3 (libxul.so+0x3ccbf38)
    #37 nsBaseAppShell::Run() /builds/worker/checkouts/gecko/widget/nsBaseAppShell.cpp:148:27 (libxul.so+0x7d3a393) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #38 nsAppShell::Run() /builds/worker/checkouts/gecko/widget/gtk/nsAppShell.cpp:470:33 (libxul.so+0x7e2a5dc) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #39 XRE_RunAppShell() /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:721:20 (libxul.so+0x9c8d60f) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #40 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:235:9 (libxul.so+0x3d5756a) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #41 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:370:10 (libxul.so+0x3ccbf38) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #42 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:363:3 (libxul.so+0x3ccbf38)
    #43 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:345:3 (libxul.so+0x3ccbf38)
    #44 XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:656:34 (libxul.so+0x9c8d270) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #45 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0x9c99742) (BuildId: ae27c45b2d27587a3cdf056e65e0f8ef15abb069)
    #46 content_process_main /builds/worker/checkouts/gecko/browser/app/../../ipc/contentproc/plugin-container.cpp:57:28 (firefox-bin+0x15c142) (BuildId: 43537d5fb13251c2c7af0f381188df89dc12b6bd)
    #47 main /builds/worker/checkouts/gecko/browser/app/nsBrowserApp.cpp:375:18 (firefox-bin+0x15c142)

Image decoder tasts running off main thread late into shutdown tries to get the main thread to post a runnable. Doesn't seem too serious.

Ideally the call to get the main thread to dispatch to would just return null and we could just quietly end. To avoid tripping the thread sanitizier data-race presumably a call to AppShutdown::IsInOrBeyond(ShutdownPhase::XPCOMShutdownThreads) or similar before making the call, but that would be a little sad to have to introduce a mostly useless call all the time for this.

We only run ShutdownXPCOM in child processes in debug builds, so I'm going to unhide this.

Group: gfx-core-security

Ah okay, maybe we can just put a debug only check so we don't trigger these issues.

Blocks: tsan

The severity field is not set for this bug.
:tnikkel, could you have a look please?

For more information, please visit BugBot documentation.

Flags: needinfo?(tnikkel)
Severity: -- → S3
Flags: needinfo?(tnikkel)
You need to log in before you can comment on or make changes to this bug.